package org.mech.sefer.client;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.Component.StyleDictionary;

public class StyleGenerator {

	public static void main(String[] args) {

		Component[] components = new Component[] {
				new org.apache.pivot.wtk.ActivityIndicator(),
				new org.apache.pivot.wtk.CalendarButton(),
				new org.apache.pivot.wtk.Checkbox(),
				new org.apache.pivot.wtk.ColorChooserButton(),
				new org.apache.pivot.wtk.LinkButton(),
				new org.apache.pivot.wtk.ListButton(),
				new org.apache.pivot.wtk.Menu.Item(),
				new org.apache.pivot.wtk.MenuBar.Item(),
				new org.apache.pivot.wtk.MenuButton(),
				new org.apache.pivot.wtk.PushButton(),
				new org.apache.pivot.wtk.RadioButton(),
				new org.apache.pivot.wtk.Accordion(),
				new org.apache.pivot.wtk.Border(),
				new org.apache.pivot.wtk.BoxPane(),
				new org.apache.pivot.wtk.Calendar(),
				new org.apache.pivot.wtk.CardPane(),
				new org.apache.pivot.wtk.ColorChooser(),
				new org.apache.pivot.wtk.Expander(),
				new org.apache.pivot.wtk.FileBrowser(),
				new org.apache.pivot.wtk.FillPane(),
				new org.apache.pivot.wtk.FlowPane(),
				new org.apache.pivot.wtk.Form(),
				new org.apache.pivot.wtk.GridPane(),
				new org.apache.pivot.wtk.Menu(),
				new org.apache.pivot.wtk.MenuBar(),
				new org.apache.pivot.wtk.Panel(),
				new org.apache.pivot.wtk.Rollup(),
				new org.apache.pivot.wtk.ScrollBar(),
				new org.apache.pivot.wtk.Slider(),
				new org.apache.pivot.wtk.Spinner(),
				new org.apache.pivot.wtk.SplitPane(),
				new org.apache.pivot.wtk.StackPane(),
				new org.apache.pivot.wtk.TablePane(),
				new org.apache.pivot.wtk.TabPane(),
				new org.apache.pivot.wtk.TextPane(),
				new org.apache.pivot.wtk.Panorama(),
				new org.apache.pivot.wtk.ScrollPane(),
				new org.apache.pivot.wtk.Window(),
				new org.apache.pivot.wtk.Frame(),
				new org.apache.pivot.wtk.Dialog(),
				new org.apache.pivot.wtk.Alert(),
				new org.apache.pivot.wtk.MenuPopup(),
				new org.apache.pivot.wtk.Palette(),
				new org.apache.pivot.wtk.Sheet(),
				new org.apache.pivot.wtk.FileBrowserSheet(),
				new org.apache.pivot.wtk.Prompt(),
				new org.apache.pivot.wtk.SuggestionPopup(),
				new org.apache.pivot.wtk.Tooltip(),
				new org.apache.pivot.wtk.GridPane.Filler(),
				new org.apache.pivot.wtk.ImageView(),
				new org.apache.pivot.wtk.Label(),
				new org.apache.pivot.wtk.ListView(),
				new org.apache.pivot.wtk.Meter(),
				new org.apache.pivot.wtk.MovieView(),
				new org.apache.pivot.wtk.Separator(),
				new org.apache.pivot.wtk.TablePane.Filler(),
				new org.apache.pivot.wtk.TableView(),
				new org.apache.pivot.wtk.TableViewHeader(),
				new org.apache.pivot.wtk.TextArea(),
				new org.apache.pivot.wtk.TextInput(),
				new org.apache.pivot.wtk.TreeView() };
		
		List<Component> list = Arrays.asList(components);
		
		Collections.sort(list, new Comparator<Component>() {

			@Override
			public int compare(Component o1, Component o2) {
				return o1.getClass().getSimpleName().compareTo(o2.getClass().getSimpleName());
			}
			
		});
		
		StringBuilder builder = new StringBuilder("<html><body>\n");
		builder.append("<head><style type=\"text/css\">body {font-family: monospace;}</style></head>");		
		
		
		for(Component component : list){
			final StyleDictionary styles = component.getStyles();
			builder.append("<div style=\"width:170px;font-weight:bold; text-align:right\">").append(component.getClass().getSimpleName()).append("</div>");
			builder.append("<div style=\"white-space: nowrap;\">");
			List<String> stylesList = new ArrayList<String>();
			for(String s : styles){
				stylesList.add(s);
				Collections.sort(stylesList);
			}
			
			for(String s : stylesList){
				builder.append(s).append("<br/>");
			}
			
			builder.append("</div><br/><hr>\n");
		}
		
		builder.append("</body>");
		
		
		System.out.println(builder.toString());

	}
}
